package com.yxx.community.controller;

import com.yxx.community.dto.QuestionDTO;
import com.yxx.community.model.Question;
import com.yxx.community.model.User;
import com.yxx.community.service.QuestionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;

/**
 * @Author: YuXinXin
 * @Description:
 * @Date:Created in 21:17 2020/1/26
 **/
@Controller
public class PublishController {


  @Autowired
  private QuestionService questionService;


  
  @GetMapping("/publish")
  public String publish(){
    return "publish";
  }


  @PostMapping("/publish")
  public String doPublish(
          @RequestParam("title") String title,
          @RequestParam("description") String description,
          @RequestParam("tag") String tag,
          @RequestParam(value = "id",required = false) Long id,
          HttpServletRequest request,
          Model model){
    model.addAttribute("title",title);
    model.addAttribute("description",description);
    model.addAttribute("tag",tag);
    if (title==null || title==""){
      model.addAttribute("error","标题不能为空");
      return "publish";
    }
    if (description==null || description==""){
      model.addAttribute("error","问题补充不能为空");
      return "publish";
    }
    if (tag==null || tag==""){
      model.addAttribute("error","标签不能为空");
      return "publish";
    }
    User user = (User) request.getSession().getAttribute("user");
    if(user==null){
      model.addAttribute("error","用户未登录");
      return "publish";
    }

    Question question = new Question();
    question.setTitle(title);
    question.setDescription(description);
    question.setTag(tag);
    question.setCreator(user.getId());
    question.setId(id);
    questionService.createOrUpdate(question);
    return "redirect:/";
  }


  @GetMapping("/publish/{id}")
  public String edit(@PathVariable("id")Long id,
                     Model model){
    QuestionDTO question = questionService.getById(id);
    model.addAttribute("title",question.getTitle());
    model.addAttribute("description",question.getDescription());
    model.addAttribute("tag",question.getTag());
    model.addAttribute("id",question.getId());
    return "publish";
  }
}
